home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / system / misc / low_leve / adidrv.taz / adidrv / main.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-02  |  1.6 KB  |  84 lines

  1. #ifndef    __MAIN_H
  2. #define    __MAIN_H
  3.  
  4. /*
  5.  *    main.h -- 3.4 Oct 18 12:39:34 1992
  6.  *    Copyright (c) 1986-1992 Axel T. Schreiner
  7.  *
  8.  *    argument standards
  9.  */
  10.  
  11. #if defined NeXT && defined __cplusplus
  12. extern "C" {
  13. #endif
  14.  
  15. #include <string.h>    /* strlen */
  16.  
  17. #if defined __STDC__ || defined __cplusplus
  18. #define    MAIN    int main (int argc, char * argv[])
  19. #else
  20. #define    MAIN    int main (argc, argv) int argc; char * argv[];
  21. #endif
  22.  
  23. #define    OPT    while (--argc > 0)                    \
  24.         {   switch (**++argv) {                    \
  25.              case '-':                        \
  26.             switch (*++*argv) {                \
  27.             case 0:     --*argv;                \
  28.                     break;                \
  29.             case '-':   if (! (*argv)[1])            \
  30.                     {    ++argv, --argc;            \
  31.                     break;                \
  32.                     }                    \
  33.             default:    do                    \
  34.                     {    switch (**argv) {        \
  35.                     case 0:
  36.  
  37. #define    ARG                    continue;        \
  38.                     case
  39.  
  40. #define    PARM                    if (*++*argv)        \
  41.                             ;            \
  42.                         else if (--argc > 0)    \
  43.                             ++argv;        \
  44.                         else            \
  45.                         {   --*argv, ++argc;    \
  46.                             break;        \
  47.                         }
  48.  
  49. #define    NEXTOPT                    *argv += strlen(*argv) - 1;
  50.  
  51. #define    OTHER                    continue;        \
  52.                     }
  53.  
  54. #define    ENDOPT                } while (*++*argv);            \
  55.                     continue;                \
  56.             }                        \
  57.             break;                        \
  58.             }                            \
  59.             break;                        \
  60.         }
  61.  
  62. #define    IFANY    if (argc > 1) while (-- argc > 0)            \
  63.         {    static char __any;                \
  64.             if (**++argv == '-'                \
  65.                 && ! __any) switch (*++*argv) {        \
  66.             case 0:        --*argv;            \
  67.                     break;                \
  68.             case '-':    if (! (*argv)[1])        \
  69.                     {    __any = 1;        \
  70.                         continue;        \
  71.                     }                \
  72.             default:    do {                \
  73.                         switch (**argv)        \
  74.                         case 0:
  75.  
  76. #define    ANY                } while (*++*argv);        \
  77.                     continue;            \
  78.                 }
  79.  
  80. #if defined NeXT && defined __cplusplus
  81. };
  82. #endif
  83. #endif
  84.